package cn.ibizlab.businesscentral.core.base.filter;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.HashMap;

import lombok.*;
import lombok.extern.slf4j.Slf4j;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.fastjson.annotation.JSONField;

import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;


import cn.ibizlab.businesscentral.util.filter.QueryWrapperContext;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import cn.ibizlab.businesscentral.core.base.domain.Organization;
/**
 * 关系型数据实体[Organization] 查询条件对象
 */
@Slf4j
@Data
public class OrganizationSearchContext extends QueryWrapperContext<Organization> {

	private String n_fiscalyearformatsuffix_eq;//[会计年度后缀]
	public void setN_fiscalyearformatsuffix_eq(String n_fiscalyearformatsuffix_eq) {
        this.n_fiscalyearformatsuffix_eq = n_fiscalyearformatsuffix_eq;
        if(!ObjectUtils.isEmpty(this.n_fiscalyearformatsuffix_eq)){
            this.getSearchCond().eq("fiscalyearformatsuffix", n_fiscalyearformatsuffix_eq);
        }
    }
	private String n_emailconnectionchannel_eq;//[电子邮件连接通道]
	public void setN_emailconnectionchannel_eq(String n_emailconnectionchannel_eq) {
        this.n_emailconnectionchannel_eq = n_emailconnectionchannel_eq;
        if(!ObjectUtils.isEmpty(this.n_emailconnectionchannel_eq)){
            this.getSearchCond().eq("emailconnectionchannel", n_emailconnectionchannel_eq);
        }
    }
	private String n_fullnameconventioncode_eq;//[全名显示顺序]
	public void setN_fullnameconventioncode_eq(String n_fullnameconventioncode_eq) {
        this.n_fullnameconventioncode_eq = n_fullnameconventioncode_eq;
        if(!ObjectUtils.isEmpty(this.n_fullnameconventioncode_eq)){
            this.getSearchCond().eq("fullnameconventioncode", n_fullnameconventioncode_eq);
        }
    }
	private String n_discountcalculationmethod_eq;//[折扣计算方法]
	public void setN_discountcalculationmethod_eq(String n_discountcalculationmethod_eq) {
        this.n_discountcalculationmethod_eq = n_discountcalculationmethod_eq;
        if(!ObjectUtils.isEmpty(this.n_discountcalculationmethod_eq)){
            this.getSearchCond().eq("discountcalculationmethod", n_discountcalculationmethod_eq);
        }
    }
	private String n_timeformatcode_eq;//[时间格式代码]
	public void setN_timeformatcode_eq(String n_timeformatcode_eq) {
        this.n_timeformatcode_eq = n_timeformatcode_eq;
        if(!ObjectUtils.isEmpty(this.n_timeformatcode_eq)){
            this.getSearchCond().eq("timeformatcode", n_timeformatcode_eq);
        }
    }
	private String n_organizationstate_eq;//[组织状态]
	public void setN_organizationstate_eq(String n_organizationstate_eq) {
        this.n_organizationstate_eq = n_organizationstate_eq;
        if(!ObjectUtils.isEmpty(this.n_organizationstate_eq)){
            this.getSearchCond().eq("organizationstate", n_organizationstate_eq);
        }
    }
	private String n_sharepointdeploymenttype_eq;//[选择 SharePoint 部署类型]
	public void setN_sharepointdeploymenttype_eq(String n_sharepointdeploymenttype_eq) {
        this.n_sharepointdeploymenttype_eq = n_sharepointdeploymenttype_eq;
        if(!ObjectUtils.isEmpty(this.n_sharepointdeploymenttype_eq)){
            this.getSearchCond().eq("sharepointdeploymenttype", n_sharepointdeploymenttype_eq);
        }
    }
	private String n_plugintracelogsetting_eq;//[插件跟踪日志设置]
	public void setN_plugintracelogsetting_eq(String n_plugintracelogsetting_eq) {
        this.n_plugintracelogsetting_eq = n_plugintracelogsetting_eq;
        if(!ObjectUtils.isEmpty(this.n_plugintracelogsetting_eq)){
            this.getSearchCond().eq("plugintracelogsetting", n_plugintracelogsetting_eq);
        }
    }
	private String n_isvintegrationcode_eq;//[ISV 集成模式]
	public void setN_isvintegrationcode_eq(String n_isvintegrationcode_eq) {
        this.n_isvintegrationcode_eq = n_isvintegrationcode_eq;
        if(!ObjectUtils.isEmpty(this.n_isvintegrationcode_eq)){
            this.getSearchCond().eq("isvintegrationcode", n_isvintegrationcode_eq);
        }
    }
	private String n_syncoptinselectionstatus_eq;//[Dynamics 365 azure sync 的选择加入操作或选择退出操作的状态。]
	public void setN_syncoptinselectionstatus_eq(String n_syncoptinselectionstatus_eq) {
        this.n_syncoptinselectionstatus_eq = n_syncoptinselectionstatus_eq;
        if(!ObjectUtils.isEmpty(this.n_syncoptinselectionstatus_eq)){
            this.getSearchCond().eq("syncoptinselectionstatus", n_syncoptinselectionstatus_eq);
        }
    }
	private String n_negativeformatcode_eq;//[负数格式]
	public void setN_negativeformatcode_eq(String n_negativeformatcode_eq) {
        this.n_negativeformatcode_eq = n_negativeformatcode_eq;
        if(!ObjectUtils.isEmpty(this.n_negativeformatcode_eq)){
            this.getSearchCond().eq("negativeformatcode", n_negativeformatcode_eq);
        }
    }
	private String n_organizationname_like;//[组织名称]
	public void setN_organizationname_like(String n_organizationname_like) {
        this.n_organizationname_like = n_organizationname_like;
        if(!ObjectUtils.isEmpty(this.n_organizationname_like)){
            this.getSearchCond().like("organizationname", n_organizationname_like);
        }
    }
	private String n_defaultrecurrenceendrangetype_eq;//[默认重复结束范围类型]
	public void setN_defaultrecurrenceendrangetype_eq(String n_defaultrecurrenceendrangetype_eq) {
        this.n_defaultrecurrenceendrangetype_eq = n_defaultrecurrenceendrangetype_eq;
        if(!ObjectUtils.isEmpty(this.n_defaultrecurrenceendrangetype_eq)){
            this.getSearchCond().eq("defaultrecurrenceendrangetype", n_defaultrecurrenceendrangetype_eq);
        }
    }
	private String n_fiscalyearformatyear_eq;//[会计年度格式(年)]
	public void setN_fiscalyearformatyear_eq(String n_fiscalyearformatyear_eq) {
        this.n_fiscalyearformatyear_eq = n_fiscalyearformatyear_eq;
        if(!ObjectUtils.isEmpty(this.n_fiscalyearformatyear_eq)){
            this.getSearchCond().eq("fiscalyearformatyear", n_fiscalyearformatyear_eq);
        }
    }
	private String n_schedulingengine_eq;//[约会和服务活动的计划引擎]
	public void setN_schedulingengine_eq(String n_schedulingengine_eq) {
        this.n_schedulingengine_eq = n_schedulingengine_eq;
        if(!ObjectUtils.isEmpty(this.n_schedulingengine_eq)){
            this.getSearchCond().eq("schedulingengine", n_schedulingengine_eq);
        }
    }
	private String n_dateformatcode_eq;//[日期格式代码]
	public void setN_dateformatcode_eq(String n_dateformatcode_eq) {
        this.n_dateformatcode_eq = n_dateformatcode_eq;
        if(!ObjectUtils.isEmpty(this.n_dateformatcode_eq)){
            this.getSearchCond().eq("dateformatcode", n_dateformatcode_eq);
        }
    }
	private String n_reportscripterrors_eq;//[报告脚本错误]
	public void setN_reportscripterrors_eq(String n_reportscripterrors_eq) {
        this.n_reportscripterrors_eq = n_reportscripterrors_eq;
        if(!ObjectUtils.isEmpty(this.n_reportscripterrors_eq)){
            this.getSearchCond().eq("reportscripterrors", n_reportscripterrors_eq);
        }
    }
	private String n_currencyformatcode_eq;//[货币格式代码]
	public void setN_currencyformatcode_eq(String n_currencyformatcode_eq) {
        this.n_currencyformatcode_eq = n_currencyformatcode_eq;
        if(!ObjectUtils.isEmpty(this.n_currencyformatcode_eq)){
            this.getSearchCond().eq("currencyformatcode", n_currencyformatcode_eq);
        }
    }
	private String n_yammerpostmethod_eq;//[仅供内部使用]
	public void setN_yammerpostmethod_eq(String n_yammerpostmethod_eq) {
        this.n_yammerpostmethod_eq = n_yammerpostmethod_eq;
        if(!ObjectUtils.isEmpty(this.n_yammerpostmethod_eq)){
            this.getSearchCond().eq("yammerpostmethod", n_yammerpostmethod_eq);
        }
    }
	private String n_weekstartdaycode_eq;//[周起始日代码]
	public void setN_weekstartdaycode_eq(String n_weekstartdaycode_eq) {
        this.n_weekstartdaycode_eq = n_weekstartdaycode_eq;
        if(!ObjectUtils.isEmpty(this.n_weekstartdaycode_eq)){
            this.getSearchCond().eq("weekstartdaycode", n_weekstartdaycode_eq);
        }
    }
	private String n_fiscalyearformatprefix_eq;//[会计年度前缀]
	public void setN_fiscalyearformatprefix_eq(String n_fiscalyearformatprefix_eq) {
        this.n_fiscalyearformatprefix_eq = n_fiscalyearformatprefix_eq;
        if(!ObjectUtils.isEmpty(this.n_fiscalyearformatprefix_eq)){
            this.getSearchCond().eq("fiscalyearformatprefix", n_fiscalyearformatprefix_eq);
        }
    }
	private String n_currencydisplayoption_eq;//[货币显示格式]
	public void setN_currencydisplayoption_eq(String n_currencydisplayoption_eq) {
        this.n_currencydisplayoption_eq = n_currencydisplayoption_eq;
        if(!ObjectUtils.isEmpty(this.n_currencydisplayoption_eq)){
            this.getSearchCond().eq("currencydisplayoption", n_currencydisplayoption_eq);
        }
    }
	private String n_fiscalperiodformatperiod_eq;//[会计期间的格式]
	public void setN_fiscalperiodformatperiod_eq(String n_fiscalperiodformatperiod_eq) {
        this.n_fiscalperiodformatperiod_eq = n_fiscalperiodformatperiod_eq;
        if(!ObjectUtils.isEmpty(this.n_fiscalperiodformatperiod_eq)){
            this.getSearchCond().eq("fiscalperiodformatperiod", n_fiscalperiodformatperiod_eq);
        }
    }
	private String n_acknowledgementtemplateid_eq;//[确认模板]
	public void setN_acknowledgementtemplateid_eq(String n_acknowledgementtemplateid_eq) {
        this.n_acknowledgementtemplateid_eq = n_acknowledgementtemplateid_eq;
        if(!ObjectUtils.isEmpty(this.n_acknowledgementtemplateid_eq)){
            this.getSearchCond().eq("acknowledgementtemplateid", n_acknowledgementtemplateid_eq);
        }
    }
	private String n_basecurrencyid_eq;//[货币]
	public void setN_basecurrencyid_eq(String n_basecurrencyid_eq) {
        this.n_basecurrencyid_eq = n_basecurrencyid_eq;
        if(!ObjectUtils.isEmpty(this.n_basecurrencyid_eq)){
            this.getSearchCond().eq("basecurrencyid", n_basecurrencyid_eq);
        }
    }

    /**
	 * 启用快速搜索
	 */
	public void setQuery(String query)
	{
		 this.query=query;
		 if(!StringUtils.isEmpty(query)){
            this.getSearchCond().and( wrapper ->
                     wrapper.like("organizationname", query)   
            );
		 }
	}
}



